package com.gopay.common.user.manager;

import java.io.Serializable;
import java.util.List;

import com.gopay.common.base.manager.BaseManager;
import com.gopay.common.domain.UserInfo;

/**
 * UserInfoQuery Manager
 * 
 * @UserInfoQueryManager.java
 * @author liuxin
 * @2013-1-6 下午1:51:20 www.gopay.com.cn Inc.All rights reserved.
 */
public interface UserInfoQueryManager extends BaseManager<UserInfo, Serializable> {

    /**
     * 根据Email查询UserInfo
     * 
     * @param email
     *            Email地址
     * @return
     */
    UserInfo getUserInfoByEmail(String email);
    
    UserInfo getUserInfoByMobile(String mobile);
    
    UserInfo getUserInfoByCustId(String custId);

    List<UserInfo> getByCustId(String custId);
    
    /**
     * 指定的Email和操作员Id、密码查找用户,用于用户登录
     * @param email
     * @param oprId
     * @param pwd
     * @return
     */
    UserInfo getUserInfoByEmailAndOprId(String email, String oprId);
    
    /**
     * 指定的custId和操作员Id、密码查找用户,用于用户登录
     * @param custId
     * @param oprId
     * @return
     */
    public UserInfo getUserInfoByCustIdAndOprId(String custId, String oprId);

	UserInfo getBySSoId(String ssoId); 

	UserInfo getUserInfoByUserId(String userId);

    /**
     * 获取企业管理员
     * @param custId
     * @return
     */
    UserInfo getCorpManager(String custId);
    
    /**
     * 
     * 如果密码是sha1(长度=40),设置密码为sha512
     * @param sbNewPwd
     * @param userInfo 
     * @author hougn
     */
    void setUserInfoPassword(StringBuilder sbNewPwd, UserInfo userInfo); 
}
